//
//  YJMStatusModel.swift
//  Weibo
//
//  Created by 杨军民 on 16/7/24.
//  Copyright © 2016年 杨军民. All rights reserved.
//

import UIKit

/*
错误：类型不匹配，41行
1、数据只需要加载一次，所以使用单例
2、加数据(从YJMUserAccountViewModel获取数据)
a、使用guard守卫，和if let 效果相差不大，只是一个是当数据没有值的时候才会调用，一个是当时等于要求时才会调用
3、设置url和设置字典
4、发送请求获取网络数据
a、返回一个字典
b、获取对应的key和其对应的value
c、遍历字典转模型
e、定义一个数组保存字典模型
f、字典转模型成功
*/

class YJMStatusModel: NSObject {
    
    //单例
    static let sharedStatus: YJMStatusModel = YJMStatusModel()
    
    //加载微博数据
    func loadStatus(completion:(error: NSError?,statusModel:[YJMWeiBoModel]?) -> Void) {
        //和if let 相反 ，当没有值的时候才会进去
        guard let access_token = YJMUserAccountViewModel.sharedUserAccountViewModel.userAccount?.access_token else{
            print("没有值")
            return
        }
        
        //url
        let URLString = "2/statuses/home_timeline.json"
        
        let parameters = [
            "access_token" : access_token
        ]
        
        //发送请求
        YJMNetWorkTools.sharedNetworkTool1.GET(URLString, parameters: parameters, success: { (_, responseObject) -> Void in
            
            //返回一个字典
            let responseDic = responseObject as? [String: AnyObject]
            //获取statuses key对应的value
            let statussKey = responseDic?["statuses"] as? [[String: AnyObject]]
            //数组保存数据
            var statusArray = [YJMWeiBoModel]()
            
            //遍历字典转模型
            for dict in statussKey! {
                //字典转模型
                let status1 = YJMWeiBoModel(dic: dict)
                //定义临时数组保存数据
                statusArray.append(status1)
            }
            
            //字典转模型成功
            completion(error: nil, statusModel:statusArray)
            
            }) { (_, error) -> Void in
                
                completion(error: error, statusModel: nil)
        }
    }
}
